Writing the Commands in Rules

Contents|Index|Previous|Next
Writing the commands in rules

The commands of a rule consist of shell command lines to be executed one by one. Each command line must start with a tab, except that the first command line may be attached to the target-and-dependencies line with a semicolon in between. Blank lines and lines of just comments may appear among the command lines; they are ignored. (But beware, an apparently blank line that begins with a tab is not blank! It is an empty command.)

Users use many different shell programs, but commands in make-files are always interpreted by /bin/sh unless the makefile specifies otherwise.

The shell that is in use determines whether comments can be written on command lines, and what syntax they use. When the shell is /bin/sh, a # starts a comment that extends to the end of the line. The # does not have to be at the beginning of a line. Text on a line before a # is not part of the comment.

See the following documentation for more discussion.

- Command echoing
- Command execution
- Parallel execution
- Errors in commands
- Interrupting or killing make
- Recursive use of make

- How the MAKE variable works
- Communicating variables to a sub-make
- Communicating options to a sub-make
- The --print-directory option

- Defining canned command sequences
- Using empty commands

Top|Contents|Index|Previous|Next